1
|
|
|
import { ConfigurationStorageBooleanCallback, getGlobalStorageProvider } from "../browserApi/storageProvider"; |
2
|
|
|
import { assigned } from "../utils/helpers"; |
3
|
|
|
|
4
|
|
|
// website |
5
|
|
|
export const SETTINGS_websiteDisplayQuickSearch = 'websiteDisplayQuickSearch'; |
6
|
|
|
export const SETTINGS_websiteAutoTimeConversion = 'websiteAutoTimeConversion'; |
7
|
|
|
export const SETTINGS_websiteShowNotificationsCountInTab = 'websiteShowNotificationsCountInTab'; |
8
|
|
|
export const SETTINGS_websiteHideUnusedTabs = 'websiteHideUnusedTabs'; |
9
|
|
|
export const SETTINGS_websiteOptimizeListAppearance = 'websiteOptimizeListAppearance'; |
10
|
|
|
export const SETTINGS_websiteOptimizeFontColors = 'websiteOptimizeFontColors'; |
11
|
|
|
// anime |
12
|
|
|
export const SETTINGS_animeLanguageDisplay = 'animeLanguageDisplay'; |
13
|
|
|
// requests |
14
|
|
|
export const SETTINGS_requestBeautifyPage = 'requestBeautifyPage'; |
15
|
|
|
// player |
16
|
|
|
export const SETTINGS_playerAutoplayAfterScreenshot = 'playerAutoplayAfterScreenshot'; |
17
|
|
|
export const SETTINGS_playerAutopauseAfterFocusLost = 'playerAutopauseAfterFocusLost'; |
18
|
|
|
export const SETTINGS_playerAutoplayAfterFocusGain = 'playerAutoplayAfterFocusGain'; |
19
|
|
|
// w2g |
20
|
|
|
export const SETTINGS_w2gDisplayCharacterCounter = 'w2gDisplayCharacterCounter'; |
21
|
|
|
export const SETTINGS_w2gAutotoggleHide = 'w2gAutotoggleHide'; |
22
|
|
|
export const SETTINGS_w2gAutoscrollToUnseen = 'w2gAutoscrollToUnseen'; |
23
|
|
|
|
24
|
|
|
class Configuration { |
25
|
|
|
settingsCache: Map<string, boolean>; |
26
|
|
|
|
27
|
|
|
constructor() { |
28
|
|
|
this.settingsCache = new Map(); |
29
|
|
|
} |
30
|
|
|
|
31
|
|
|
getProperty(key: string, callback: ConfigurationStorageBooleanCallback): void { |
32
|
|
|
if (this.settingsCache.has(key)) { |
33
|
|
|
callback(this.settingsCache.get(key)); |
34
|
|
|
} |
35
|
|
|
else { |
36
|
|
|
getGlobalStorageProvider().getDataAsBoolean(key, true, value => { |
37
|
|
|
this.settingsCache.set(key, value); |
38
|
|
|
callback(value); |
39
|
|
|
}); |
40
|
|
|
} |
41
|
|
|
} |
42
|
|
|
} |
43
|
|
|
|
44
|
|
|
let __globalConfig: Configuration; |
45
|
|
|
|
46
|
|
|
export function getGlobalConfiguration() { |
47
|
|
|
if (!assigned(__globalConfig)) { |
48
|
|
|
__globalConfig = new Configuration(); |
49
|
|
|
} |
50
|
|
|
|
51
|
|
|
return __globalConfig; |
52
|
|
|
} |
53
|
|
|
|